

# 安装jsonpath pip install jsonpath


import json
import jsonpath

# 读取数据文件 json.load()
obj = json.load(open('073.解析_jsonpath.json', 'r', encoding='utf-8'))
# print(obj)

# 书店所有的书的作者     *:全部     可以换成索引  从0开始为第一个
# author_list = jsonpath.jsonpath(obj, '$.store.book[*].author')
# author_list = jsonpath.jsonpath(obj, '$.store.book[0].author')
# print(author_list)

# 所有的作者
# author_list = jsonpath.jsonpath(obj, '$..author')
# print(author_list)

# store下面所有元素  所有的book和bicycle
# tag_list = jsonpath.jsonpath(obj, '$.store.*')
# print(tag_list)

# store 里面所有的price
# price_list = jsonpath.jsonpath(obj, '$.store..price')
# print(price_list)

# 第三本书
# book = jsonpath.jsonpath(obj, '$..book[2]')
# print(book)

# 最后一本书
# book = jsonpath.jsonpath(obj, '$..book[(@.length-1)]')
# print(book)

# 前两本书  []  里面不可加入空格
book_list = jsonpath.jsonpath(obj, '$..book[0,1]')
# book_list = jsonpath.jsonpath(obj, '$..book[:2]')
print(book_list)

# 过滤出所有包含isbn的书(版本号)
#  条件过滤需要在()的前面日安加一个?
# book_list = jsonpath.jsonpath(obj, '$..book[?(@.isbn)]')
# print(book_list)

# 哪本书超过了十块钱
# book_list = jsonpath.jsonpath(obj, '$..book[?(@.price>10)]')
# print(book_list)
